
***  This file replicates the results presented in 
*    Bearce, David H. and Garriga, Ana Carolina. 2025. "Reconsidering the Relationship between CBI and FIX." International Studies Quarterly.
*    Models in the order results are first mentioned in the manuscript. Tables A1 to A12 in the appendix, Tables 2 to 5 and figures 1 and 2 in the manuscript.
*    Results estimated using StataNow/MP 19.5 



use Bearce_Garriga_ISQ2025.dta, clear

tsset cowcode year

    
*  Table A1. Descriptive statistics 

   quietly xtreg inflation_log cbi_dj fix_dj         regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)

   sum inflation_log ers interest_rate_ln cbi_dj cbi_df fix_dj fix_df regional polity020 gdppc_log  gdp_const population trade ka_open year if e(sample)


*  The monetary institutions vars don't have mean=0 in our regression sample, only in the full sample
   sum cbi_dj cbi_df fix_dj fix_df

   
*  Table A2. Interest rate policy regressed on inflation_log and ers
xtreg interest_rate_ln                   inflation_log ers regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
xtreg interest_rate_ln l.interest_rate_ln inflation_log ers regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
xtreg interest_rate_ln l.interest_rate_ln inflation_log ers regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)

 

*** Figure 1 and Tables A3 and A4 ***  

* Table A3. Testing H1: inflation_log models using dj measures
xtreg inflation_log cbi_dj fix_dj         regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		       estimates store t1_1
		sum year if e(sample)
		test cbi_dj = .02

xtreg inflation_log l.inflation_log cbi_dj fix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		       estimates store t1_2
		
xtreg inflation_log l.inflation_log cbi_dj fix_dj regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)
		       estimates store t1_3

	
* Table A4 testing H1: inflation_log models using df measures
xtreg inflation_log cbi_df fix_df         regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
		       estimates store t2_1
        test cbi_df = .01

xtreg inflation_log l.inflation_log cbi_df fix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		       estimates store t2_2
        test cbi_df = -.001

xtreg inflation_log l.inflation_log cbi_df fix_df regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)
		       estimates store t2_3

			   			   
* Figure 1
		label variable cbi_dj "CBI (de jure)"
		label variable cbi_df "CBI (de facto)"
		label variable fix_dj "FIX (de jure)"
		label variable fix_df "FIX (de facto)"
		
		
set scheme  s1mono  
			   
	   coefplot t1_1 t1_2 t1_3, bylabel(de jure) ||, drop(_cons ) keep (cbi_dj fix_dj) xline(0) byopts(row(1)) graphregion(fcolor(white)) legend(order(2 "Country FE" 4 "Country FE + Lagged DV" 6 "Country FE + Lagged DV + Year FE" ) rows (3) size(medsmall)) p1(pstyle(p10) msymbol(O)) p2(pstyle(p1) msymbol(T)) p3(pstyle(p5) msymbol(S)) title (From Table A3) scale(.85) xsize(24) ysize(22) 
	   
	   graph save "Graph" "[...]inf_dj.gph", replace
 				   
	   coefplot t2_1 t2_2 t2_3, bylabel(de jure) ||, drop(_cons ) keep (cbi_df fix_df) xline(0) byopts(row(1)) graphregion(fcolor(white)) legend(order(2 "Country FE" 4 "Country FE + Lagged DV" 6 "Country FE + Lagged DV + Year FE" ) rows (3) size(medsmall)) p1(pstyle(p10) msymbol(O)) p2(pstyle(p1) msymbol(T)) p3(pstyle(p5) msymbol(S)) title (From Table A4) scale(.85) xsize(24) ysize(22) 
	   
	   graph save "Graph" "[...]inf_df.gph", replace
	   
	   graph combine "[...]inf_dj.gph" "[...]inf_df.gph" , iscale(*1.3) xsize(28) ysize(12) ycommon  graphregion(fcolor(white)) 
	   
	   graph save "Graph" "[...]Fig1.gph", replace


		   
*** Figure 2 and Tables A5 and A6 ***  

*   Table A5 testing H2: ers models with no interaction, dj measures
xtreg ers cbi_dj fix_dj       regional polity020 gdppc_log gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
		       estimates store t3_1
        test cbi_dj = fix_dj

xtreg ers l.ers cbi_dj fix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		       estimates store t3_2
         test cbi_dj = fix_dj

xtreg ers l.ers cbi_dj fix_dj regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)
		       estimates store t3_3
         test cbi_dj = fix_dj


*   Table A6 testing H2: ers models, df measures
xtreg ers cbi_df fix_df       regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
		       estimates store t4_1
test cbi_df = fix_df

xtreg ers l.ers cbi_df fix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		       estimates store t4_2
test cbi_df = fix_df

xtreg ers l.ers cbi_df fix_df regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)
		       estimates store t4_3
test cbi_df = fix_df		


*    Figure 2
set scheme  s1mono  
			   
      coefplot  t3_1 t3_2 t3_3 t4_1 t4_2 t4_3, bylabel(de facto)|| , drop(_cons) keep (cbi_dj fix_dj cbi_df fix_df) xline(0) byopts(row(1)) graphregion(fcolor(white)) legend(order(2 "OLS regression" 4 "Lagged DV" 6 "Lagged DV & year FE" ) rows (1) size(medsmall)) p1(pstyle(p10) msymbol(O)) p2(pstyle(p1) msymbol(T)) p3(pstyle(p5) msymbol(S)) p4(pstyle(p10) msymbol(O)) p5(pstyle(p1) msymbol(T)) p6(pstyle(p5) msymbol(S)) title (Exchange rate stability) scale(.75) xsize(24) ysize(22)
 
       graph save "Graph" "[...]ers_combined.gph", replace

 
      coefplot t3_1 t3_2 t3_3, bylabel(de jure) ||, drop(_cons ) keep (cbi_dj fix_dj) xline(0) byopts(row(1)) graphregion(fcolor(white)) legend(order(2 "Country FE" 4 "Country FE + Lagged DV" 6 "Country FE + Lagged DV + Year FE" ) rows (3) size(medsmall)) p1(pstyle(p10) msymbol(O)) p2(pstyle(p1) msymbol(T)) p3(pstyle(p5) msymbol(S)) title (From Table A5) scale(.85) xsize(24) ysize(22) 
	   
	   graph save "Graph" "[...]ers_dj.gph", replace
	   
	   coefplot t4_1 t4_2 t4_3, bylabel(de jure) ||, drop(_cons ) keep (cbi_df fix_df) xline(0) byopts(row(1)) graphregion(fcolor(white)) legend(order(2 "Country FE" 4 "Country FE + Lagged DV" 6 "Country FE + Lagged DV + Year FE" ) rows (3) size(medsmall)) p1(pstyle(p10) msymbol(O)) p2(pstyle(p1) msymbol(T)) p3(pstyle(p5) msymbol(S)) title (From Table A6) scale(.85) xsize(24) ysize(22) 
	   
	   graph save "Graph" "[...]ers_df.gph", replace
	   
	   graph combine "[...]ers_dj.gph" "[...]ers_df.gph" , iscale(*1.3) xsize(28) ysize(12) ycommon  graphregion(fcolor(white)) 
	   
	   	   graph save "Graph" "[...]Fig1.gph", replace

		  
*** Table A7 – Growth, de jure

xtreg GDPgrowth             cbi_dj fix_dj regional polity020 gdppc_log gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)

xtreg GDPgrowth l.GDPgrowth cbi_dj fix_dj regional polity020 gdppc_log gdp_const population trade ka_open, fe cluster (cowcode)

xtreg GDPgrowth l.GDPgrowth cbi_dj fix_dj regional polity020 gdppc_log gdp_const population trade ka_open i.year, fe cluster (cowcode)


*** Table A8 – Growth, de facto
		  
xtreg GDPgrowth             cbi_df fix_df regional polity020 gdppc_log gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)

xtreg GDPgrowth l.GDPgrowth cbi_df fix_df regional polity020 gdppc_log gdp_const population trade ka_open, fe cluster (cowcode)

xtreg GDPgrowth l.GDPgrowth cbi_df fix_df regional polity020 gdppc_log gdp_const population trade ka_open i.year, fe cluster (cowcode)


		  
*** Table 2 (main manuscript) and  Table A9  

*      Table A9
xtreg inflation_log         cbi_dj fix_dj cbi_djXfix_dj  regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)

xtreg inflation_log l.inflation_log cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)

xtreg inflation_log l.inflation_log cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)

		
*     Table 2, manuscript

xtreg inflation_log l.inflation_log cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)


*when CBI=-1  // these were estimated after model w.o FE
lincom (-1*cbi_dj) + (-1*fix_dj) + (1*cbi_djXfix_dj)
lincom (-1*cbi_dj) + (0*fix_dj) + (0*cbi_djXfix_dj)
lincom (-1*cbi_dj) + (1*fix_dj) + (-1*cbi_djXfix_dj)
*when CBI=0
lincom (0*cbi_dj) + (-1*fix_dj) + (0*cbi_djXfix_dj)
lincom (0*cbi_dj) + (0*fix_dj) + (0*cbi_djXfix_dj)
lincom (0*cbi_dj) + (1*fix_dj) + (0*cbi_djXfix_dj)
*when CBI=1
lincom (1*cbi_dj) + (-1*fix_dj) + (-1*cbi_djXfix_dj)
lincom (1*cbi_dj) + (0*fix_dj) + (0*cbi_djXfix_dj)
lincom (1*cbi_dj) + (1*fix_dj) + (1*cbi_djXfix_dj)



*** Table 3 (main manuscript) and  Table A10  

*      Table A10
xtreg inflation_log         cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)

xtreg inflation_log l.inflation_log cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		
xtreg inflation_log l.inflation_log cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)


		
*     Table 3, manuscript

xtreg inflation_log l.inflation_log cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)


*when CBI=-1  // these were estimated after model w.o FE
lincom (-1*cbi_df) + (-1*fix_df) + (1*cbi_dfXfix_df)
lincom (-1*cbi_df) + (0*fix_df) + (0*cbi_dfXfix_df)
lincom (-1*cbi_df) + (1*fix_df) + (-1*cbi_dfXfix_df)
*when CBI=0
lincom (0*cbi_df) + (-1*fix_df) + (0*cbi_dfXfix_df)
lincom (0*cbi_df) + (0*fix_df) + (0*cbi_dfXfix_df)
lincom (0*cbi_df) + (1*fix_df) + (0*cbi_dfXfix_df)
*when CBI=1
lincom (1*cbi_df) + (-1*fix_df) + (-1*cbi_dfXfix_df)
lincom (1*cbi_df) + (0*fix_df) + (0*cbi_dfXfix_df)
lincom (1*cbi_df) + (1*fix_df) + (1*cbi_dfXfix_df)


*** Table 4 (main manuscript) and  Table A11  

*      Table A11
xtreg ers       cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
		
xtreg ers l.ers cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		
xtreg ers l.ers cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)


*     Table 4, manuscript

xtreg ers l.ers cbi_dj fix_dj cbi_djXfix_dj regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)


*for Table 11, when FIX=-1
lincom (-1* cbi_dj) + (-1* fix_dj) + (1* cbi_djXfix_dj)
lincom (0* cbi_dj) + (-1* fix_dj) + (0* cbi_djXfix_dj)
lincom (1* cbi_dj) + (-1* fix_dj) + (-1* cbi_djXfix_dj)
*when FIX=0
lincom (-1* cbi_dj) + (0* fix_dj) + (0* cbi_djXfix_dj)
lincom (0* cbi_dj) + (0* fix_dj) + (0* cbi_djXfix_dj)
lincom (1* cbi_dj) + (0* fix_dj) + (0* cbi_djXfix_dj)
*when FIX=1
lincom (-1* cbi_dj) + (1* fix_dj) + (-1* cbi_djXfix_dj)
lincom (0* cbi_dj) + (1* fix_dj) + (0* cbi_djXfix_dj)
lincom (1* cbi_dj) + (1* fix_dj) + (1* cbi_djXfix_dj)



*** Table 5 (main manuscript) and  Table A12  

*      Table A12
xtreg ers       cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		sum year if e(sample)
		
xtreg ers l.ers cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)
		
xtreg ers l.ers cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open i.year, fe cluster (cowcode)


*     Table 5, manuscript

xtreg ers l.ers cbi_df fix_df cbi_dfXfix_df regional polity020 gdppc_log  gdp_const population trade ka_open, fe cluster (cowcode)


*for Table 11, when FIX=-1
lincom (-1* cbi_df) + (-1*fix_df) + (1* cbi_dfXfix_df)
lincom (0* cbi_df) + (-1*fix_df) + (0* cbi_dfXfix_df)
lincom (1* cbi_df) + (-1*fix_df) + (-1* cbi_dfXfix_df)
*when FIX=0
lincom (-1* cbi_df) + (0*fix_df) + (0* cbi_dfXfix_df)
lincom (0* cbi_df) + (0*fix_df) + (0* cbi_dfXfix_df)
lincom (1* cbi_df) + (0*fix_df) + (0* cbi_dfXfix_df)
*when FIX=1
lincom (-1* cbi_df) + (1*fix_df) + (-1* cbi_dfXfix_df)
lincom (0* cbi_df) + (1*fix_df) + (0* cbi_dfXfix_df)
lincom (1* cbi_df) + (1*fix_df) + (1* cbi_dfXfix_df)

		   
		   
		   
		  